Establishing and Refining Beams in MIMO Sessions

ABSTRACT

Establishing and refining beams in MIMO sessions can include detecting establishment of a communication session between a cell site and a user equipment. The communication session can be conducted using a multi-input multi-output beam that can be supported by a first portion of an antenna array, the first portion including two or more antenna array elements of the antenna array. Device data that relates to the user equipment can be obtained, where the device data can include movement data that can describe a movement of the user equipment. A beamforming command can be generated to include instructions that, when implemented by an entity associated with the cell site, can cause the cell site to refine the multi-input multi-output beam based on the device data. A refined multi-input multi-output beam can be supported by a second portion of the antenna array. The beamforming command can be provided to the cell site.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of and claims priority to U.S. patentapplication Ser. No. 17/557,183, entitled “Establishing and RefiningBeams into MIMO Sessions,” filed Dec. 21, 2021, now allowed, which isincorporated herein by reference in its entirety.

BACKGROUND

In multi-user multi-input multi-output sessions, beam assignment can bean iterative process. A base station can initiate communications using abroadcast beam that then can be refined into one or more narrower beamsbased on reports from or about user equipment communicating in thesession. Such an approach is not suitable for user equipment that moves,as each time a user equipment moves out of a line of sight of theantenna with which it communicates, the beam must be reestablished. Suchbeam reestablishment is a time consuming, iterative, andresource-consuming process. Such an approach is not an efficient use ofnetwork resources and can result in a poor user experience.

SUMMARY

The present disclosure is directed to establishing and refining beams inmulti-input multi-output (“MIMO”) sessions. A voice and/or data session(“communication session”) can be established between a user equipmentand a cell site. The session can include a voice session and/or a datasession. The session can be supported by a beam generated duringwireless communications between the cell site and the user equipment,where the MIMO beam can be generated by one or more antenna arrayelements of an antenna array. The MIMO beamforming service can beconfigured to detect establishment of the session and to obtain devicedata associated with the user equipment. The device data can includecontextual data that can describe what type of data or content is beingtransmitted in the session and that information can be used to determineresource needs of the user equipment for this session. The device dataalso can include location data that can describe one or more movements(e.g., including geographic location, trajectory, etc.) of the userequipment; power levels and/or charge status associated with the userequipment, and/or other information relevant to the needs of the userequipment within the session at issue.

The MIMO beamforming service can determine if the user equipment isstationary or non-stationary. Based on a determination that the userequipment is stationary, the MIMO beamforming service can generate oneor more beamforming commands that, when implemented by the cell site,can cause the cell site to refine the MIMO beam to a particular level ofrefinement (e.g., a defined number of antenna array elements or thelike). The obtaining of the device data and the generating of the MIMObeamforming commands can be iterated until the MIMO beamforming servicedetermines, in any iteration of this process, that the user equipment isnon-stationary or that the user equipment is mobile.

Based on a determination that the user equipment is mobile, the MIMObeamforming service can determine, based on the device data, one or moremovements, trajectories, and/or activities associated with the userequipment and can determine a beam focus level based on thesedeterminations. As noted above, the MIMO beam focus level can be changedbased on movements of the user equipment and needs of the userequipment. The MIMO beamforming service can determine how the MIMO beamshould be focused and can generate one or more beamforming commands fordelivery to the cell site.

After delivering the MIMO beamforming commands to the cell site, theMIMO beamforming service can determine (at some future time) if the MIMObeam should be moved or modified. If the MIMO beamforming service makessuch a determination, the MIMO beamforming service can again obtain thedevice data and the MIMO beam refinement process can be reiterated.According to various embodiments of the concepts and technologiesdisclosed herein the MIMO beam can be flexibly narrowed and widened tomeet customer needs or customer experience commitments while minimizingresource usage associated with the cell site. It should be understoodthat this example is illustrative, and therefore should not be construedas being limiting in any way.

According to one aspect of the concepts and technologies disclosedherein, a system is disclosed. The system can include a processor and amemory. The memory can store computer-executable instructions that, whenexecuted by the processor, cause the processor to perform operations.The operations can include detecting establishment of a communicationsession between a cell site and a user equipment. The communicationsession can be conducted using a multi-input multi-output beam that canbe supported by a first portion of an antenna array. The first portioncan include two or more antenna array elements of the antenna array. Theoperations further can include obtaining device data that relates to theuser equipment. The device data can include movement data that candescribe a movement of the user equipment. The operations further caninclude generating a beamforming command that can include instructionsthat, when implemented by an entity associated with the cell site,causes entity to refine the multi-input multi-output beam based on thedevice data. A refined multi-input multi-output beam can be supported bya second portion of the antenna array. The operations further caninclude providing the beamforming command to the cell site.

In some embodiments, the movement data can describe a direction oftravel of the user equipment and a speed of travel of the userequipment. In some embodiments, the operations further can includedetermining, based on the device data, if the user equipment isstationary; and generating the beamforming command in response to adetermination that the user equipment is stationary. The beamformingcommand can cause the entity to deactivate a first antenna element thatis included in the first portion of the antenna array and that is notincluded in the second portion of the antenna array. In someembodiments, the operations further can include determining, based onthe device data, if the user equipment is stationary; and in response toa determination that the user equipment is not stationary, identifyingor predicting movements of the user equipment, determining a beam focuslevel, and generating the beamforming command. The beamforming commandcan cause the entity to deactivate a first antenna element that isincluded in the first portion of the antenna array and that is notincluded in the second portion of the antenna array.

In some embodiments, the operations further can include determining,based on the device data, if the multi-input multi-output beam should bemodified; and generating the beamforming command in response to adetermination that the multi-input multi-output beam should be modified.The beamforming command can cause the entity to deactivate a firstantenna element that is included in the first portion of the antennaarray and that is not included in the second portion of the antennaarray.

In some embodiments, the first portion of the antenna array can includea first antenna array element of the antenna array, and the secondportion of the antenna array can include a second antenna array elementof the antenna array. In some embodiments, the first portion of theantenna array can include a first antenna array element and does notinclude a second antenna array element, and the second portion of theantenna array can include the second antenna array element and does notinclude the first antenna array element. In some embodiments, the firstportion of the antenna array can include a first antenna array elementof a first antenna array that includes the antenna array, and the secondportion of the antenna array can include a second antenna array elementof a second antenna array that does not include the antenna array.

In some embodiments, the operations further can include determining,based on the device data, if the multi-input multi-output beam should bemodified; and generating the beamforming command in response to adetermination that the multi-input multi-output beam should be modified.The beamforming command can cause the cell site to change an aim of afirst antenna element that is included in the first portion of theantenna array. In some embodiments, the operations further can includedetermining, based on the device data, if the multi-input multi-outputbeam should be modified; and generating the beamforming command inresponse to a determination that the multi-input multi-output beamshould be modified. The beamforming command can cause the cell site tochange a power level of a first antenna element that is included in thefirst portion of the antenna array.

According to another aspect of the concepts and technologies disclosedherein, a method is disclosed. The method can include detectingestablishment of a communication session between a cell site and a userequipment. The communication session can be conducted using amulti-input multi-output beam that can be supported by a first portionof an antenna array, the first portion including two or more antennaarray elements of the antenna array. The method further can includeobtaining device data that relates to the user equipment, where thedevice data can include movement data that can describe a movement ofthe user equipment. The method further can include generating abeamforming command that can include instructions that, when implementedby an entity associated with the cell site, can cause the cell site torefine the multi-input multi-output beam based on the device data. Arefined multi-input multi-output beam can be supported by a secondportion of the antenna array. The method further can include providingthe beamforming command to the cell site.

In some embodiments, the movement data can describe a direction oftravel of the user equipment and a speed of travel of the userequipment. In some embodiments, the operations further can includedetermining, based on the device data, if the user equipment isstationary; and generating the beamforming command in response to adetermination that the user equipment is stationary. The beamformingcommand can cause the entity to deactivate a first antenna element thatis included in the first portion of the antenna array and that is notincluded in the second portion of the antenna array.

In some embodiments, the operations further can include determining,based on the device data, if the user equipment is stationary; and inresponse to a determination that the user equipment is not stationary,identifying or predicting movements of the user equipment, determining abeam focus level, and generating the beamforming command. Thebeamforming command can cause the entity to deactivate a first antennaelement that is included in the first portion of the antenna array andthat is not included in the second portion of the antenna array.

In some embodiments, the operations further can include determining,based on the device data, if the multi-input multi-output beam should bemodified; and generating the beamforming command in response to adetermination that the multi-input multi-output beam should be modified.The beamforming command can cause the entity to deactivate a firstantenna element that is included in the first portion of the antennaarray and that is not included in the second portion of the antennaarray.

According to yet another aspect of the concepts and technologiesdisclosed herein, a computer storage medium is disclosed. The computerstorage medium can store computer-executable instructions that, whenexecuted by a processor, cause the processor to perform operations. Theoperations can include detecting establishment of a communicationsession between a cell site and a user equipment. The communicationsession can be conducted using a multi-input multi-output beam that canbe supported by a first portion of an antenna array. The first portioncan include two or more antenna array elements of the antenna array. Theoperations further can include obtaining device data that relates to theuser equipment. The device data can include movement data that candescribe a movement of the user equipment. The operations further caninclude generating a beamforming command that can include instructionsthat, when implemented by an entity associated with the cell site,causes entity to refine the multi-input multi-output beam based on thedevice data. A refined multi-input multi-output beam can be supported bya second portion of the antenna array. The operations further caninclude providing the beamforming command to the cell site.

In some embodiments, the movement data can describe a direction oftravel of the user equipment and a speed of travel of the userequipment. In some embodiments, the operations further can includedetermining, based on the device data, if the user equipment isstationary; and generating the beamforming command in response to adetermination that the user equipment is stationary. The beamformingcommand can cause the entity to deactivate a first antenna element thatis included in the first portion of the antenna array and that is notincluded in the second portion of the antenna array. In someembodiments, the operations further can include determining, based onthe device data, if the user equipment is stationary; and in response toa determination that the user equipment is not stationary, identifyingor predicting movements of the user equipment, determining a beam focuslevel, and generating the beamforming command. The beamforming commandcan cause the entity to deactivate a first antenna element that isincluded in the first portion of the antenna array and that is notincluded in the second portion of the antenna array.

In some embodiments, the operations further can include determining,based on the device data, if the multi-input multi-output beam should bemodified; and generating the beamforming command in response to adetermination that the multi-input multi-output beam should be modified.The beamforming command can cause the entity to deactivate a firstantenna element that is included in the first portion of the antennaarray and that is not included in the second portion of the antennaarray.

Other systems, methods, and/or computer program products according toembodiments will be or become apparent to one with skill in the art uponreview of the following drawings and detailed description. It isintended that all such additional systems, methods, and/or computerprogram products be included within this description and be within thescope of this disclosure.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1A is a system diagram that illustrates an illustrative operatingenvironment for various embodiments of the concepts and technologiesdescribed herein.

FIG. 1B is a line drawing schematically illustrating establishing andrefining beams in MIMO sessions, according to an illustrative embodimentof the concepts and technologies disclosed herein.

FIG. 2 is a flow diagram showing aspects of a method for establishingand refining beams in MIMO sessions, according to an illustrativeembodiment of the concepts and technologies described herein.

FIG. 3 is a flow diagram showing aspects of a method for establishingand refining beams in MIMO sessions, according to another illustrativeembodiment of the concepts and technologies described herein.

FIG. 4 schematically illustrates a network, according to an illustrativeembodiment of the concepts and technologies described herein.

FIG. 5 is a block diagram illustrating an example computer systemconfigured to establish and refine beams in MIMO sessions, according tosome illustrative embodiments of the concepts and technologies describedherein.

FIG. 6 is a block diagram illustrating an example mobile deviceconfigured to interact with a MIMO beamforming service, according tosome illustrative embodiments of the concepts and technologies describedherein.

FIG. 7 is a diagram illustrating a computing environment capable ofimplementing aspects of the concepts and technologies disclosed herein,according to some illustrative embodiments of the concepts andtechnologies described herein.

DETAILED DESCRIPTION

The following detailed description is directed to establishing andrefining beams in MIMO sessions. A data or voice session can beestablished between a user equipment and a cell site. The session caninclude a voice session and/or a data session. The session can besupported by a beam generated during wireless communications between thecell site and the user equipment, where the MIMO beam can be generatedby one or more antenna array elements of an antenna array. The MIMObeamforming service can be configured to detect establishment of thesession and to obtain device data associated with the user equipment.The device data can include contextual data that can describe what typeof data or content is being transmitted in the session and thatinformation can be used to determine resource needs of the userequipment for this session. The device data also can include locationdata that can describe on or more movements (e.g., including geographiclocation, trajectory, etc.) of the user equipment; power levels and/orcharge status associated with the user equipment, and/or otherinformation relevant to the needs of the user equipment within thesession at issue.

The MIMO beamforming service can determine if the user equipment isstationary or non-stationary. Based on a determination that the userequipment is stationary, the MIMO beamforming service can generate oneor more beamforming commands that, when implemented by the cell site,can cause the cell site to refine the MIMO beam to a particular level ofrefinement (e.g., a defined number of antenna array elements or thelike). The obtaining of the device data and the generating of the MIMObeamforming commands can be iterated until the MIMO beamforming servicedetermines, in any iteration of this process, that the user equipment isnon-stationary or that the user equipment is mobile.

Based on a determination that the user equipment is mobile, the MIMObeamforming service can determine, based on the device data, one or moremovements, trajectories, and/or activities associated with the userequipment and can determine a beam focus level based on thesedeterminations. As noted above, the MIMO beam focus level can be changedbased on movements of the user equipment and needs of the userequipment. The MIMO beamforming service can determine how the MIMO beamshould be focused and can generate one or more beamforming commands fordelivery to the cell site.

After delivering the MIMO beamforming commands to the cell site, theMIMO beamforming service can determine (at some future time) if the MIMObeam should be moved or modified. If the MIMO beamforming service makessuch a determination, the MIMO beamforming service can again obtain thedevice data and the MIMO beam refinement process can be reiterated.According to various embodiments of the concepts and technologiesdisclosed herein the MIMO beam can be flexibly narrowed and widened tomeet customer needs or customer experience commitments while minimizingresource usage associated with the cell site. It should be understoodthat this example is illustrative, and therefore should not be construedas being limiting in any way.

While the subject matter described herein is presented in the generalcontext of program modules that execute in conjunction with theexecution of an operating system and application programs on a computersystem, those skilled in the art will recognize that otherimplementations may be performed in combination with other types ofprogram modules. Generally, program modules include routines, programs,components, data structures, and other types of structures that performparticular tasks or implement particular abstract data types. Moreover,those skilled in the art will appreciate that the subject matterdescribed herein may be practiced with other computer systemconfigurations, including hand-held devices, multiprocessor systems,microprocessor-based or programmable consumer electronics,minicomputers, mainframe computers, and the like.

Referring now to FIG. 1A, aspects of an operating environment 100 forvarious embodiments of the concepts and technologies disclosed hereinfor establishing and refining beams in MIMO sessions will be described,according to an illustrative embodiment. The operating environment 100shown in FIG. 1A includes a user equipment 102. The user equipment 102can operate in communication with and/or as part of a communicationsnetwork (“network”) 104, though this is not necessarily the case.

According to various embodiments, the functionality of the userequipment 102 may be provided by one or more mobile telephones orsmartphones, one or more laptop computers or tablet computers, one ormore connected vehicle devices, other computing systems, and the like.For purposes of describing the concepts and technologies disclosedherein, the user equipment 102 is described herein as a smartphone. Itshould be understood that this embodiment is illustrative, and shouldnot be construed as being limiting in any way.

The user equipment 102 can execute an operating system 106 and one ormore application programs such as, for example, a communicationapplication 108. The operating system 106 can include a computer programthat can control the operation of the user equipment 102. Thecommunication application 108 can include an executable program that canbe configured to execute on top of the operating system 106 to providevarious functions as illustrated and described herein for enabling theestablishment and/or refinement of beams in MIMO sessions, as will beillustrated and described herein after introducing the other componentsof the operating environment 100.

As shown in FIG. 1A, the user equipment 102 can be configured tocommunicate with and/or via equipment located at one or more cell sites110A-N (hereinafter collectively and/or generically referred to as “cellsites 110”). As is generally understood, the cell sites 110 can includevarious equipment, hardware, and/or software for providing wirelessconnectivity for the user equipment 102. Thus, it can be appreciatedthat the cell sites 110 can be associated with one or more serviceproviders, in some embodiments. In the illustrated embodiment shown inFIG. 1A, the user equipment 102 is illustrated as communicating withand/or via the cell site 110A, and the cell site 110A is illustrated asincluding a controller 112 and an antenna array 114.

The controller 112 can include a real and/or virtualized computingdevice that can execute one or more applications, modules, and/orservices for controlling the antenna array 114 and/or communicationsoccurring using the antenna array 114. As such, it can be appreciatedthat the controller 112 can be configured to control the antenna array114 and/or other hardware and/or software associated with the cell site110 such as, for example, one or more radios, antennas, combiners, etc.Because the types of hardware and/or software associated with the cellsites 110 can vary based on upon various aspects of the cell sites 110(e.g., the standards being implemented by the cell sites 110, thehardware and/or software vendors involved, the service providersinvolved, etc.), it should be understood that the above-noted examplesare illustrative of resources that can be controlled by the controller112 and are not exhaustive. Furthermore, in some embodiments the cellsites 110 can be provided by virtualized resources, and therefore thecontroller 112 can be configured as a virtual resource controller insome embodiments. As such, it should be understood that the aboveexamples are illustrative, and therefore should not be construed asbeing limiting in any way.

As generally is understood, the antenna array 114 can include variousnumbers of antenna array elements 116AA-NN (hereinafter collectivelyand/or generically referred to as “antenna array elements 116”). Invarious embodiments of the concepts and technologies disclosed herein,the antenna array elements 116 can be independently controlled andtherefore power levels, frequencies, directional aim, etc., of therespective antenna array elements 116 can be controlled by thecontroller 112. The number of antenna array elements 116 can vary basedon various considerations including standards being used, manufacturesof the antenna arrays 114, etc. In some contemplated embodiments of theconcepts and technologies disclosed herein, the antenna arrays 114 canbe configured to support MIMO sessions (between the cell sites 110 andthe user equipment 102 and/or other devices) and therefore can havesixty-four, one hundred twenty-eight, and/or even more antenna arrayelements 116 that can be controlled in groups of one or more antennaarray elements 116. It should be understood that this example isillustrative, and therefore should not be construed as being limiting inany way.

As generally is understood, one antenna array element 116 may be enoughto support communications for a particular device such as, for example,the user equipment 102, if aimed correctly (at the user equipment 102).Because a user equipment 102 may be mobile, however, it previously hasnot been practical to aim a particular antenna array element 116 at theuser equipment 102 to support the session. Furthermore, as the MIMO beamis narrowed down to one or even a few antenna array elements 116, anymovement or other disruption to the communications has previously meantthat the narrowing down of the MIMO beam (from an entire antenna array114 and/or other large collection of antenna array elements 116) hasrequired a return to a beginning of the process (starting with abroadest set of the antenna array elements 116 and narrowing down to thesmallest number of antenna array elements 116 that can support thecommunications).

Embodiments of the concepts and technologies disclosed herein enable thecontroller 112 to track a user equipment 102 and support MIMO sessionswith a narrow beam (e.g., using as few antenna array elements 116 aspossible while still meeting service commitments for communications viathe cell site 110) being generated between the cell site 110 and theuser equipment 102, as will be illustrated and described in more detailherein. If changes are made to the MIMO beam due to movements of theuser equipment 102 and/or for other reasons, embodiments of the processas illustrated and described herein can avoid having to reiterate thenarrowing of the MIMO beam from the beginning of the narrowing process.Thus, embodiments of the concepts and technologies disclosed herein canenable a narrow beamform to be used and/or modified to provide efficientcommunications for MIMO sessions without having to start at a broadestlevel beamform as previously has been done. It should be understood thatthis example is illustrative, and therefore should not be construed asbeing limiting in any way.

Referring briefly to FIG. 1B, an example beamforming process asillustrated and described herein will be described, according to oneexample embodiment. In the circles labeled A-H, a portion of an exampleantenna array 114 is shown, with active antenna array elements 116 beingillustrated as being filled in black and inactive antenna array elements116 being illustrated as being filled in white. It should be understoodthat this example is illustrative, and therefore should not be construedas being limiting in any way.

It can be appreciated that the progression shown in circles A-C can besubstantially similar to how a beamform can be narrowed in accordancewith modern technologies; where a broad beam is narrowed downprogressively to deactivate as many antenna array elements 116 aspossible while still supporting communications between the antenna array114 and a user equipment 102. As shown in the circle D, the MIMObeamform has been narrowed to a single active antenna array element 116and shifted (relative to the center of the original broad beamform). Itshould be understood that this example is illustrative, and thereforeshould not be construed as being limiting in any way.

Circles E-H illustrate additional aspects of the concepts andtechnologies disclosed herein. Namely, these circles illustrate how oneor more previously active antenna array elements 116 (e.g., the singleactive antenna array element 116 shown as active in circle E) can bedeactivated and one or more previously inactive antenna array elements116 (e.g., the antenna array element 116 next to the active antennaarray element 116 shown in circle E) can be activated. Thus, it can beappreciated that a session supported by one antenna array element 116 ata first time t₁ can be transferred to a new antenna array element 116 ata second time t₂. Circles G-H illustrate additional modifications thatcan occur including broadening the MIMO beamform; shifting the MIMObeamform; and/or otherwise modifying the MIMO beamform. It should beunderstood that handoffs between a first antenna array element 116 of afirst antenna array 114 and a second antenna array element 116 of asecond antenna array 114 can be occur as well. It should be understoodthat this example is illustrative, and therefore should not be construedas being limiting in any way.

Circles I-J illustrate additional aspects of the concepts andtechnologies disclosed herein. Namely, these circles illustrate how oneor more previously active antenna array elements 116 of a first cellsite 114A (e.g., the single active antenna array element 116 of cellsite 114A, which is shown as active in circle I) can be deactivated andone or more previously inactive antenna array elements 116 (e.g., anantenna array element 116 of the cell site 114B as shown in circle J)can be activated. Thus, it can be appreciated that a session supportedby a first antenna array element 116 of a first cell site 114A at afirst time t₁ can be transferred to a second antenna array element 116of a second cell site 114B at a second time t₂. It should be understoodthat this example is illustrative, and therefore should not be construedas being limiting in any way.

To support these and other embodiments of beamforming in accordance withthe concepts and technologies disclosed herein, device data 118 can beprovided by the user equipment 102 and/or the cell sites 110 to one ormore services, applications, and/or other functionality for determininghow beams should be modified and/or moved to support communicationsbetween the cell sites 110 and the user equipment 102. In particular,the illustrated embodiment of the operating environment 100 can includea MIMO beamforming service 120, which can be hosted and/or executed by aserver computer 122 or other computing device. In various embodiments ofthe concepts and technologies disclosed herein, the functionality of theserver computer 122 can be provided by one or more server computers, webservers, desktop computers, laptop computers, other computing systems,and the like. For purposes of describing the concepts and technologiesdisclosed herein, the server computer 122 is described herein as anapplication server. It should be understood that this embodiment isillustrative, and should not be construed as being limiting in any way.

According to various embodiments of the concepts and technologiesdisclosed herein, the MIMO beamforming service 120 can obtain the devicedata 118 from the user equipment 102 and/or the cell sites 110 (e.g.,from one or more network monitors and/or other hardware and/or softwareassociated with the cell sites 110). According to various embodiments ofthe concepts and technologies disclosed herein, the device data 118 caninclude contextual data, movement data, connection data, and/or otherdata.

The contextual data can include data and/or other information that canbe used to describe contextual state information associated with theuser equipment 102. The contextual data can describe, for example, atype of use the user equipment 102 is making of the network such as, forexample, a voice call, a video call, an Internet browsing session, astreaming data or audio session, etc. It can be appreciated that thetype of data or voice session can affect the needs of the user equipment102 with respect to the data or voice session, and may be used by theMIMO beamforming service 120 to determine the number of antenna arrayelements 116 to dedicate to the connection as a delay in delivering datawould adversely affect the customer experience more in a streaming videosession (for example) than for an Internet browsing session. As such,the MIMO beamforming service 120 can be configured, in some embodiments,to narrow or widen the MIMO beam (e.g., by dedicating fewer or more,respectively, antenna array elements 116) based on the activity of theuser equipment 102. It should be understood that this example isillustrative, and therefore should not be construed as being limiting inany way.

The contextual data also can describe the device usage and/or batteryinformation. Thus, for example, the contextual data can indicate whatother processes or activities are being conducted with the userequipment 102 in addition to the data or voice session, whether the userequipment 102 is being charged, and/or a battery level associated withthe user equipment 102. In some embodiments, the battery level and/orthe current charge status can affect the ability of the user equipment102 to communicate with the antenna array 114 (as a fully charged orcharging user equipment 102 may have the ability to dedicate additionalpower to the transceiver of the user equipment 102, thereby improvingreception, etc.). Thus, in some embodiments the MIMO beamforming service120 can be configured to narrow or widen the MIMO beam (e.g., bydedicating fewer or more, respectively, antenna array elements 116)based on the device usage, other device usage, and/or batteryinformation associated with the user equipment 102. It should beunderstood that this example is illustrative, and therefore should notbe construed as being limiting in any way.

The movement data can indicate movements of the user equipment 102. Themovements can include a current geographical location associated withthe user equipment 102 (e.g., global positioning system (“GPS”)coordinates of the user equipment 102, a cell site 110, WiFi SSID, orother networking device with which the user equipment 102 communicates,etc.); whether the user equipment 102 is stationary or mobile; atrajectory (direction and speed of movement) of the user equipment 102if mobile; orientation of the user equipment 102 (e.g., athree-dimensional orientation of the user equipment 102); a distancebetween the user equipment 102 and one or more antenna array elements116 supporting a session with the user equipment 102; and/or othermovements of the user equipment 102. In some embodiments, the MIMObeamforming service 120 can be configured to narrow or widen the MIMObeam (e.g., by dedicating fewer or more, respectively, antenna arrayelements 116) based on the movement data associated with the userequipment 102. It should be understood that this example isillustrative, and therefore should not be construed as being limiting inany way.

The connection data can describe various connection parametersassociated with a data or voice session between the antenna array 114and the user equipment 102. Thus, the connection data can describe,among other things, a number of antenna array elements 116 supportingthe session, power levels of the one or more antenna array elements 116,frequencies and/or channels associated with the session, and/or otheraspects of the session. In some embodiments, the MIMO beamformingservice 120 can be configured to narrow or widen the MIMO beam (e.g., bydedicating fewer or more, respectively, antenna array elements 116)based on the connection data associated with the user equipment 102. Itshould be understood that this example is illustrative, and thereforeshould not be construed as being limiting in any way.

The other data can include various other information that can be used tounderstand data and/or voice session needs for a session between theantenna array 114 and the user equipment 102. As such, the other datacan include any information that may be used by the MIMO beamformingservice 120 as illustrated and described herein that is not separatelydefined herein such as, for example, a brand or model associated withthe user equipment 102; an identity associated with the user equipment102; a connection history associated with the user equipment 102; and/orother types of information. Because the other data can includeadditional information not explicitly illustrated and described herein,it should be understood that the illustrated embodiments of the otherdata are illustrative and should not be construed as being limiting inany way.

The MIMO beamforming service 120 can be configured to detect theestablishment of a voice or data session between a cell site 110 and auser equipment 102. The MIMO beamforming service 120 can be configuredto obtain, for the user equipment 102 involved in the detected session,the device data 118. In some embodiments, the MIMO beamforming service120 can obtain the device data 118 from one or more of the cell sites110 and/or from one or more devices such as, for example, the userequipment 102. In some other embodiments, the device data 118 can beprovided to the server computer 122 (and the MIMO beamforming service120) by the user equipment 102, the cell sites 110, and/or other devicesor entities. As will be explained in more detail below, the device data118 can be collected by the user equipment 102 at the direction, in someembodiments, of the communication application 108, though this is notnecessarily the case in all embodiments.

Based on the device data 118, the MIMO beamforming service 120 can beconfigured to determine if the user equipment 102 is stationary (ornon-mobile) or if the user equipment 102 is mobile (or non-stationary).If the MIMO beamforming service 120 determines that the user equipment102 is stationary, the MIMO beamforming service 120 can be configured togenerate a beamforming command 124 that, when implemented by the cellsite 110 and/or a device thereof, causes the refinement of the MIMO beamto a specified level (e.g., number) of antenna array elements 116. TheMIMO beamforming commands 124 can include commands, instructions, and/orinformation that can inform the cell site 110 (or a controller 112thereof) regarding the MIMO beamforming determinations made by the MIMObeamforming service 120.

Thus, for example, a stationary user equipment 102 can be supported by asmall number of, or even a single, antenna array element 116 in variousembodiments as the user equipment 102 may remain in the line of sight ofthe single antenna array element 116 as long as the user equipment 102remains stationary. Thus, the MIMO beamforming service 120 may beconfigured to generate a beamforming command 124 that can cause the cellsite 110 (or a device thereof) to narrow the MIMO beam to the determinednumber of antenna array elements 116, in some embodiments, to supportthe communications between the user equipment 102 and the cell site 110.The MIMO beamforming service 120 can deliver (or effect delivery of) theMIMO beamforming commands 124 to the cell site 110 and the cell site 110can effect refinement of the MIMO beam. After sending the MIMObeamforming commands 124 to the cell site 110, the MIMO beamformingservice 120 can be configured to obtain another iteration or release ofthe device data 118 and/or can wait to receive another release of thedevice data 118. It should be understood that this example isillustrative, and therefore should not be construed as being limiting inany way.

If the MIMO beamforming service 120 determines that the user equipment102 is non-stationary (or mobile), the MIMO beamforming service 120 canbe configured to identify (from the device data 118) or predict (basedon the device data 118) one or more movements of the user equipment 102,a trajectory of the user equipment 102, and/or an activity of the userequipment 102. Thus, for example, the MIMO beamforming service 120 canbe configured to determine how the user equipment 102 is moving relativeto the cell site 110 (and/or relative to the one or more antenna arrayelements 116 that are supporting the session). The MIMO beamformingservice 120 also can be configured to determine how the user equipment102 is being used and/or an associated battery level, charging status,data need of the user equipment 102, etc. Thus, it can be appreciatedthat the MIMO beamforming service 120 can be configured to determine howthe user equipment 102 is moving relative to the cell site 110 and/orrelative to the one or more antenna array elements 116 that support thesession. It should be understood that this example is illustrative, andtherefore should not be construed as being limiting in any way.

Based on the movements, trajectories, and activity associated with theuser equipment 102, the MIMO beamforming service 120 can be configuredto determine a beam focus level for the MIMO beam between the cell site110 and the user equipment 102. Thus, for example, the MIMO beamformingservice 120 can determine a speed of movement (relative to the cell site110) of the user equipment 102, a direction of the movement of the userequipment 102 (relative to the cell site 110), etc. The MIMO beamformingservice 120 can be configured to determine, based on thesedeterminations, how the MIMO beam should be refined. For example, theMIMO beamforming service 120 can be configured to determine that arelatively fast-moving user equipment 102 may ideally be supported usinga beam provided by four antenna array elements 116 (for example) as theconnection provided by such a beam is less likely to be interruptedduring movement of the user equipment 102 relative to a beam provided byonly a single antenna array element 116. Other numbers of antenna arrayelements 116 are possible and are contemplated, so this example shouldnot be construed as being limiting in any way. Alternatively, the MIMObeamforming service 120 can be configured to determine that aslowly-moving user equipment 102 may be supported by a beam provided bya single antenna array element 116 and/or some other number of antennaarray elements 116 without negatively impacting the user experience.

As such, it can be appreciated that the MIMO beamforming service 120 canbe configured to determine the MIMO beam focus level based on a balanceof resource needs (e.g., the type of data connection, movements of theuser equipment 102, activity and/or context of the connection, powerlevels associated with the session, distance between the cell site 110and the user equipment 102, etc.) against a desire to minimize resourceusage associated with the cell site 110. Thus, the MIMO beamformingservice 120 can be configured to refine the stationary beam associatedwith the session between the cell site 110 and the user equipment 102 asnarrow as possible while meeting a service commitment and/or need. Itshould be understood that this example is illustrative, and thereforeshould not be construed as being limiting in any way.

After the MIMO beamforming service 120 determines the MIMO beam focuslevel that is ideal for the session, the MIMO beamforming service 120can effect the refinement of the MIMO beam in accordance with thedetermined beam focus level. Unlike other technologies for beamforming,the MIMO beamforming service 120 can be configured to effect thenarrowing or widening of the MIMO beam without having to cause the cellsite 110 to reiterate the initial beam establishment process often usedby other service providers. Namely, other service providers may refinebeams by first establishing the MIMO beam by dedicating an entireantenna array 114 to a beam for a session between the cell site 110 andthe user equipment 102 and then narrowing the MIMO beam down to aspecified number of antenna array elements 116. In such embodiments, ifthe needs associated with the user equipment 102 change, or if the MIMObeam is lost (e.g., if the user equipment 102 moves out of range of theantenna array elements 116 supporting the MIMO beam, moves out of a lineof sight of the antenna array elements 116 supporting the MIMO beam,etc.), the cell site 110 may have to rededicate the entire antenna array114 to the MIMO beam and again narrow down the MIMO beam to a definednumber of antenna array elements 116. This iterative process uses agreat deal of resources, takes time to iterate, and can adversely affectthe customer experience. Embodiments of the concepts and technologiesdisclosed herein, however, can be configured to flexibly allocate orde-allocate antenna array elements 116 based on the movements and/orneeds of the user equipment 102 as explained herein without having toiterate the dedication of the antenna array 114 and subsequent narrowingas explained above. Thus, embodiments of the concepts and technologiesdisclosed herein can be used to conserve resources while meetingcustomer service and customer experience commitments, in someembodiments.

Upon determining how the MIMO beam should be narrowed, the MIMObeamforming service 120 can generate one or more beamforming commands124. The MIMO beamforming commands 124 can include commands,instructions, and/or information that can inform the cell site 110 (or acontroller 112 thereof) regarding the MIMO beamforming determinationsmade by the MIMO beamforming service 120.

Namely, the MIMO beamforming commands 124 can include instructions,commands, or other information that, when received by the cell site 110and/or other entities associated with the cell site 110 (e.g., thecontroller 112), can trigger manipulation of the antenna array 114 thatis supporting a connection between the user equipment 102 and the cellsite 110.

For example, the implementation of the MIMO beamforming commands 124 bythe cell site 110 and/or elements thereof can result in the allocationor de-allocation of one or more antenna array elements 116, the tilting(in any axis) of one or more of the antenna array elements 116, anincrease or decrease in power levels of the one or more antenna arrayelements 116, combinations thereof, or the like. Thus, the MIMObeamforming service 120 can, via generating and delivering the MIMObeamforming commands 124, cause the manipulation of various aspects ofthe connection used by the user equipment 102 to communicate with thecell site 110. It should be understood that this example isillustrative, and therefore should not be construed as being limiting inany way.

The controller 112 or other functionality associated with the cell site110 can implement the MIMO beamforming commands 124 to narrow or widenthe MIMO beam in accordance with the determinations of the MIMObeamforming service 120, to tilt or aim one or more antenna arrayelements 116, to increase or decrease one or more power levels of one ormore antenna array elements 116, combinations thereof, or the like.Thus, the MIMO beamforming commands 124 can be implemented by the cellsite 110 to modify the MIMO beam associated with the session. It shouldbe understood that this example is illustrative, and therefore shouldnot be construed as being limiting in any way.

It should be understood that the MIMO beamforming service 120 can beconfigured to reiterate the MIMO beam refinement process illustrated anddescribed herein periodically and/or at determined or set times duringthe session to continuously refine the MIMO beam associated with thesession. Thus, the MIMO beamforming service 120 can generate one or morebeamforming commands 124. The MIMO beamforming commands 124 can beconfigured to minimize resource usage while meeting customer needsand/or commitments. It should be understood that this example isillustrative, and therefore should not be construed as being limiting inany way.

Now that the elements of the operating environment 100 have beenintroduced, the functionality of the controller 112 will be furtherelaborated upon in accordance with an example embodiment of the conceptsand technologies disclosed herein. The controller 112 can be configuredto cause the cell site 110 to establish a voice or data session with auser equipment 102. As illustrated in FIG. 1A, the cell site 110 caninclude an antenna array 114, and the establishment of the session withthe user equipment 102 can include establishing the session using afirst level MIMO beam. In some embodiments, the first level MIMO beammay be supported by any number of antenna array elements from two ormore antenna array elements 116 to all antenna array elements 116associated with the antenna array 114. It should be understood that thisexample is illustrative, and therefore should not be construed as beinglimiting in any way.

The controller 112 can be configured to obtain, for the user equipment102 involved in the established session, the device data 118. In someembodiments, the controller 112 can obtain the device data 118 from anetwork monitor or other device or function of the cell site 110 or fromthe user equipment 102. Based on the device data 118, the controller 112can be configured to determine if the user equipment 102 is stationaryor non-mobile, or if the user equipment 102 is mobile or non-stationary.If the controller 112 determines that the user equipment 102 isstationary, the controller 112 can be configured to refine the MIMO beamto a specified level (e.g., number) of antenna array elements 116. Insome embodiments, the MIMO beam can be refined to a minimum number ofantenna array elements 116 while meeting a quality of service need orcommitment. As used herein, the word “refine” when used with respect toa beam (or signal) associated with a session can be used to refer tonarrowing or widening the MIMO beam by dedicating fewer or more antennaarray elements 116 to the MIMO beam used within the communicationsession; moving a session from one antenna array element 116 to anotherantenna array element; performing a handoff from one antenna arrayelement 116 of a first cell site 110 to a second antenna array element116 of a second cell site 110; or the like.

Thus, for example, a stationary user equipment 102 can be supported by asmall number of, or even a single, antenna array element 116 in variousembodiments as the user equipment 102 may remain in the line of sight ofthe single antenna array element 116 as long as the user equipment 102remains stationary. Thus, the controller 112 may be configured to narrowthe MIMO beam to the determined number of antenna array elements 116, insome embodiments, to support the communications between the userequipment 102 and the cell site 110. Upon refining the MIMO beam to adesired level, the controller 112 can obtain another release oriteration of the device data 118 and/or can wait to receive anotherrelease of the device data 118. It should be understood that thisexample is illustrative, and therefore should not be construed as beinglimiting in any way.

If the controller 112 determines that the user equipment 102 isnon-stationary (or mobile), the controller 112 can be configured toidentify or predict (e.g., based on the device data 118) one or moremovements of the user equipment 102, a trajectory of the user equipment102, and/or an activity of the user equipment 102. Thus, for example,the controller 112 can be configured to determine how the user equipment102 is moving relative to the cell site 110 (and/or relative to the oneor more antenna array elements 116 that are supporting the session). Thecontroller 112 also can be configured to determine how the userequipment 102 is being used and/or an associated battery level, chargingstatus, data need of the user equipment 102, etc. Thus, it can beappreciated that the controller 112 can be configured to determine howthe user equipment 102 is moving relative to the cell site 110 and/orrelative to the one or more antenna array elements 116 that support thesession. It should be understood that this example is illustrative, andtherefore should not be construed as being limiting in any way.

Based on the movements, trajectories, and activity associated with theuser equipment 102, the controller 112 can be configured to determine abeam focus level for the MIMO beam between the cell site 110 and theuser equipment 102. Thus, for example, the controller 112 can determinea speed of movement (relative to the cell site 110) of the userequipment 102, a direction of the movement of the user equipment 102(relative to the cell site 110), etc. The controller 112 can beconfigured to determine, based on these determinations, how the MIMObeam should be refined. For example, the controller 112 can beconfigured to determine that a relatively fast-moving user equipment 102may ideally be supported using a beam provided by four antenna arrayelements 116 as the connection provided by such a beam is less likely tobe interrupted during movement of the user equipment 102 relative to abeam provided by only a single antenna array element 116. Alternatively,the controller 112 can be configured to determine that a slowly-movinguser equipment 102 may be supported by a beam provided by a singleantenna array element 116 without affecting the user experience.

As such, it can be appreciated that the controller 112 can be configuredto determine the MIMO beam focus level based on a balance of resourceneeds (e.g., the type of data connection, movements of the userequipment 102, activity and/or context of the connection, power levelsassociated with the session, distance between the cell site 110 and theuser equipment 102, etc.) against a desire to minimize resource usageassociated with the cell site 110. Thus, the controller 112 can beconfigured to refine the stationary beam associated with the sessionbetween the cell site 110 and the user equipment 102 as narrow aspossible while meeting a service commitment and/or need. It should beunderstood that this example is illustrative, and therefore should notbe construed as being limiting in any way.

After the controller 112 determines the MIMO beam focus level that isideal for the session, the controller 112 can refine the MIMO beam inaccordance with the determined beam focus level. Unlike othertechnologies for beamforming, the controller 112 can be configured tonarrow or widen the MIMO beam without having to reiterate the initialbeam establishment process often used by other service providers.Namely, beams may be established by dedicating an entire antenna array114 to a beam for a session between the cell site 110 and the userequipment 102 and then narrowing the MIMO beam down to a specifiednumber of antenna array elements 116 as may be required for otherservice providers. Such an iterative process that may be used by otherproviders may consume relatively more resources, may consume time toiterate this process, and may adversely affect the customer experience.Embodiments of the concepts and technologies disclosed herein can allowthe flexible allocation and/or de-allocation of antenna array elements116 based on the movements and/or needs of the user equipment 102 asexplained herein without having to iterate the dedication of the antennaarray 114 and subsequent narrowing as explained above. Thus, embodimentsof the concepts and technologies disclosed herein can be used toconserve resources while meeting customer service and customerexperience commitments, in some embodiments.

Upon determining how the MIMO beam should be narrowed, the controller112 can manipulate the antenna array 114 that is supporting a connectionbetween the user equipment 102 and the cell site 110. For example,manipulations can include allocation or de-allocation of one or moreantenna array elements 116, the tilting (in any axis) of one or more ofthe antenna array elements 116, an increase or decrease in power levelsof the one or more antenna array elements 116, combinations thereof, orthe like. Thus, the controller 112 can manipulate various aspects of theconnection used by the user equipment 102 to communicate with the cellsite 110. It should be understood that this example is illustrative, andtherefore should not be construed as being limiting in any way.

The controller 112 or other functionality associated with the cell site110 can narrow or widen the MIMO beam, tilt or aim one or more antennaarray elements 116, increase or decrease one or more power levels of oneor more antenna array elements 116, combinations thereof, or the like.The controller 112 can be configured to reiterate the MIMO beamrefinement process illustrated and described herein periodically and/orat determined or set times during the session to continuously refine theMIMO beam associated with the session. Thus, the controller 112 canminimize resource usage associated with the session while meetingcustomer needs and/or commitments for the session. It should beunderstood that this example is illustrative, and therefore should notbe construed as being limiting in any way.

In practice, a user equipment 102 can establish a session with a cellsite 110. The session can include a voice session and/or a data session.The session can be supported by beam generated during wirelesscommunications between the cell site 110 and the user equipment 102,where the MIMO beam can be generated by one or more antenna arrayelements 116 of an antenna array 114. The MIMO beamforming service 120can be configured to detect establishment of the session and to obtaindevice data 118 associated with the user equipment 102. The device data118 can include contextual data that can describe what type of data orcontent is being transmitted in the session and that information can beused to determine resource needs of the user equipment 102 for thissession. The device data 118 also can include location data that candescribe one or more movements (e.g., including geographic location,trajectory, etc.) of the user equipment 102; power levels and/or chargestatus associated with the user equipment, and/or other informationrelevant to the needs of the user equipment 102 within the session atissue.

The MIMO beamforming service 120 can determine if the user equipment 102is stationary or non-stationary. For stationary user equipment 102, theMIMO beamforming service 120 can generate one or more beamformingcommands 124 that, when implemented by the cell site 110, can cause thecell site 110 to refine the MIMO beam for the stationary user equipment102. The obtaining of the device data 118 and the generating of the MIMObeamforming commands 124 can be iterated until the MIMO beamformingservice 120 determines, in any iteration of this process, that the userequipment 102 is non-stationary or that the user equipment 102 ismobile.

Based on a determination that the user equipment 102 is mobile, the MIMObeamforming service 120 can determine, based on the device data 118, oneor more movements, trajectories, and/or activities associated with theuser equipment 102 and can determine a beam focus level based on thesedeterminations. As noted above, the MIMO beam focus level can be changedbased on movements of the user equipment 102 and needs of the userequipment 102. The MIMO beamforming service 120 can determine how theMIMO beam should focused and can generate one or more beamformingcommands 124 for delivery to the cell site 110. After delivering theMIMO beamforming commands 124 to the cell site 110, the MIMO beamformingservice 120 can determine (at some future time) if the MIMO beam shouldbe moved or modified. If the MIMO beamforming service 120 makes such adetermination, the MIMO beamforming service 120 can again obtain thedevice data 118 and the MIMO beam refinement process can be reiterated.According to various embodiments of the concepts and technologiesdisclosed herein the MIMO beam can be flexibly narrowed and widened tomeet customer needs or customer experience commitments while minimizingresource usage associated with the cell site 110. The controller 112also can be configured, in some embodiments, to collect and/or reportthe device data 118. It should be understood that this example isillustrative, and therefore should not be construed as being limiting inany way.

Turning back now to the communication application 108, the communicationapplication 108 can be included in some embodiments to cause the userequipment 102 to collect and/or report the device data 118. In someembodiments, the communication application 108 can monitor activity ofthe user equipment 102 and create the device data 118 at any time. Thedevice data 118 can be created and/or shared with other devices whenevents occur (e.g., when a connection is established or changed, whenthe user equipment 102 moves, etc.) and/or at various times and/or timeintervals. Thus, the communication application 108 can be configured tocapture the contextual data, to determine location and/or movement ofthe user equipment 102, to determine charging and/or battery status ofthe user equipment 102, and/or the like. The communication application108 can cause the user equipment 102 to report the device data 118 tothe server computer 122 and/or the cell sites 110. It should beunderstood that this example is illustrative, and therefore should notbe construed as being limiting in any way.

FIG. 1A illustrates one user equipment 102, one network 104, two cellsites 110, and one server computer 122. It should be understood,however, that various implementations of the operating environment 100can include zero, one, or more than one user equipment 102; zero, one,or more than one network 104; zero, one, two, or more than two cellsites 110; and zero, one, or more than one server computer 122. As such,the illustrated embodiment should be understood as being illustrative,and should not be construed as being limiting in any way.

Turning now to FIG. 2 , aspects of a method 200 for establishing andrefining beams in MIMO sessions will be described in detail, accordingto an illustrative embodiment of the concepts and technologies disclosedherein. It should be understood that the operations of the methodsdisclosed herein are not necessarily presented in any particular orderand that performance of some or all of the operations in an alternativeorder(s) is possible and is contemplated. The operations have beenpresented in the demonstrated order for ease of description andillustration. Operations may be added, omitted, and/or performedsimultaneously, without departing from the scope of the concepts andtechnologies disclosed herein.

It also should be understood that the methods disclosed herein can beended at any time and need not be performed in its entirety. Some or alloperations of the methods, and/or substantially equivalent operations,can be performed by execution of computer-readable instructions includedon a computer storage media, as defined herein. The term“computer-readable instructions,” and variants thereof, as used herein,is used expansively to include routines, applications, applicationmodules, program modules, programs, components, data structures,algorithms, and the like. Computer-readable instructions can beimplemented on various system configurations including single-processoror multiprocessor systems, minicomputers, mainframe computers, personalcomputers, hand-held computing devices, microprocessor-based,programmable consumer electronics, combinations thereof, and the like.

Thus, it should be appreciated that the logical operations describedherein are implemented (1) as a sequence of computer implemented acts orprogram modules running on a computing system and/or (2) asinterconnected machine logic circuits or circuit modules within thecomputing system. The implementation is a matter of choice dependent onthe performance and other requirements of the computing system.Accordingly, the logical operations described herein are referred tovariously as states, operations, structural devices, acts, or modules.These states, operations, structural devices, acts, and modules may beimplemented in software, in firmware, in special purpose digital logic,and any combination thereof. As used herein, the phrase “cause aprocessor to perform operations” and variants thereof is used to referto causing a processor of a computing system or device, such as thecontroller 112 and/or the server computer 122, to perform one or moreoperations and/or causing the processor to direct other components ofthe computing system or device to perform one or more of the operations.

For purposes of illustrating and describing the concepts of the presentdisclosure, the method 200 is described herein as being performed by thecontroller 112 via execution of one or more software modules such as,for example, a MIMO beamforming application or module (not visible inthe FIGURES). It should be understood that additional and/or alternativedevices and/or network nodes can provide the functionality describedherein via execution of one or more modules, applications, and/or othersoftware. Thus, the illustrated embodiments are illustrative, and shouldnot be viewed as being limiting in any way.

The method 200 begins at operation 202. At operation 202, the controller112 can cause the cell site 110 to establish a voice or data sessionwith a user equipment 102. According to various embodiments of theconcepts and technologies disclosed herein, the session established inoperation 202 can correspond to a MIMO session and therefore can besupported by one or more antenna arrays 114. In some embodiments of theconcepts and technologies disclosed herein, the session established ordetected in operation 202 can correspond to a multi-user (“MU”) MIMOsession, which can include the use of one or more portions of theantenna array 114 (e.g., one or more groups of antenna array elements116) to support the session. It should be understood that these exampleembodiments are illustrative, and therefore should not be construed asbeing limiting in any way.

From operation 202, the method 200 can proceed to operation 204. Atoperation 204, the controller 112 can establish a first level MIMO beamfor the user equipment 102. According to various embodiments of theconcepts and technologies disclosed herein, the first level MIMO beamcan be provided by all or a number of the available antenna arrayelements 116 associated with a particular cell site 110. The number ofantenna array elements 116 used at the first level can be predeterminedand can range from two antenna array elements 116 to all antenna arrayelements 116. Thus, it can be appreciated that when a session isinitiated, the MIMO beam associated with the session can correspond to awide area or broadcast beam that may be directed in more than onedirection, etc. It should be understood that this example isillustrative, and therefore should not be construed as being limiting inany way.

From operation 204, the method 200 can proceed to operation 206. Atoperation 206, the controller 112 can obtain device data 118 relating tothe user equipment 102 associated with the session established ordetected in operation 202. As explained herein, the device data 118 canbe obtained from the user equipment 102, from one or more networkmonitors and/or other entities associated with the cell site 110, and/orfrom other entities. The device data 118 can include contextual data,movement data, connection data, and/or other data as illustrated anddescribed herein with reference to FIG. 1A. It should be understood thatthis example is illustrative, and therefore should not be construed asbeing limiting in any way.

From operation 206, the method 200 can proceed to operation 208. Atoperation 208, the controller 112 can determine if the user equipment102 associated with the session established or detected in operation 202is stationary or non-stationary. According to various embodiments of theconcepts and technologies disclosed herein, the controller 112 can makethe determination of operation 208 by analyzing the device data 118 anddetermining, based on the device data 118, if the user equipment 102 ismoving or stationary. Of course, the controller 112 can insteaddetermine, in operation 208, if the user equipment 102 is mobile ornon-mobile, etc. Thus, the illustrated embodiment is illustrative andshould not be construed as being limiting in any way.

If the controller 112 determines, in operation 208, that the userequipment 102 associated with the session established or detected inoperation 202 is stationary, the method 200 can proceed to operation210. At operation 210, the controller 112 can refine (or effectrefinement of) the MIMO beam to a minimum number of antenna arrayelements 116 that can provide the requested service at a requested orrequired service level commitment. Thus, operation 210 can includedetermining how many antenna array elements 116 are required to providethe beam to the user equipment 102 and deallocating or deactivating anyantenna array elements 116 that are not needed to provide the beam tothe user equipment 102. It should be understood that this example isillustrative, and therefore should not be construed as being limiting inany way.

If the controller 112 determines, in operation 208, that the userequipment 102 associated with the session established or detected inoperation 202 is non-stationary (or alternatively that the userequipment 102 is mobile), the method 200 can proceed to operation 212.At operation 212, the controller 112 can analyze the device data 118 andidentify and/or predict, based on the device data 118, one or moremovements, trajectories, and/or activities of the user equipment 102. Asexplained above, the device data 118 can include contextual data thatcan describe activities of the user equipment 102, movement data thatcan describe locations, trajectories, speeds, etc., of the userequipment 102, connection data that can describe power levels of thecommunication hardware of the user equipment 102, and/or other data thatcan describe other aspects of the user equipment 102 and/or the session.Thus, operation 212 can include analyzing the device data 118 todetermine resource needs associated with the session, movements of theuser equipment 102, and/or other aspects of the communication sessionestablished in operation 202.

From operation 212, the method 200 can proceed to operation 214. Atoperation 214, the controller 112 can determine a beam focus level touse for the session established or detected in operation 202 based onthe movements, trajectories, and activity determined in operation 212and based on an overall desire to minimize resource usage associatedwith the beam as explained above. Thus, in operation 214 the controller112 can determine how many antenna array elements 116 are required tosupport the beam associated with the session based on movements of theuser equipment 102 and/or predicted movements of the user equipment 102,resource needs associated with the session, and one or more connectionparameters (e.g., power levels, etc.). Again, in some embodiments thecontroller 112 can be configured to use a narrowest beam possible (e.g.,a beam generated by the smallest number of antenna array elements 116possible) while meeting a service commitment. It should be understoodthat this example is illustrative, and therefore should not be construedas being limiting in any way.

From operation 214, the method 200 can proceed to operation 216. Atoperation 216, the controller 112 can refine the non-stationary MIMObeam in accordance with the beam focus level as determined in operation214. In a first iteration of operation 216, for example, the controller112 can be configured to refine the non-stationary MIMO beam from thefirst level (as established in operation 204) to the level determined inoperation 214. In some other iterations of operation 216, the focuslevel of the MIMO beam can be changed in operation 216 by furthernarrowing the MIMO beam or by widening the MIMO beam; by moving the MIMObeam from one antenna array element 116 to a different antenna arrayelement 116 (e.g., to track movements of a user equipment 102); ahandoff of the beam (from one antenna array element 116 at one cell site110 to a different antenna array element 116 at a second cell site 110);or other changes that can be made to the MIMO beam. Thus, it can beappreciated that the MIMO beam can be refined by the controller 112multiple times without iterating the operation illustrated and describedherein in operation 204 for establishing the MIMO beam at a first level.It should be understood that this example is illustrative, and thereforeshould not be construed as being limiting in any way.

From operation 216, the method 200 can proceed to operation 218. Atoperation 218, the controller 112 can determine if the MIMO beamassociated with the session established or detected in operation 202should be modified based on a movement associated with the userequipment 102. Thus, it can be appreciated that operation 218 caninclude the controller 112 determining, based on the movements,trajectories, and activity of the user equipment 102, if the beam shouldbe narrowed, widened, moved, handed off, etc.

If the controller 112 determines, in operation 218, that the MIMO beamassociated with the session established or detected in operation 202should be modified, the method 200 can return to operation 216, and thecontroller 112 can again refine the non-stationary MIMO beam. Thus,operations 216-218 can be iterated until the controller 112 determines,in any iteration of operation 218, that the MIMO beam should not bemodified.

If the controller 112 determines, in operation 218, that the MIMO beamassociated with the session established or detected in operation 202should not be modified, the method 200 can proceed to operation 220. Atoperation 220, the controller 112 can determine if commands such as theMIMO beamforming commands 124 have been received by the controller 112.Such commands can be received outside of the method 200 illustrated anddescribed in FIG. 2 , and as such, the controller 112 may need toimplement commands outside of the flow of the method 200. If thecontroller 112 determines, in operation 220, that commands such as theMIMO beamforming commands 124 have been received by the controller 112,the method 200 can return to operation 216, and the controller 112 canagain refine the non-stationary MIMO beam, this time based on thebeamforming commands 124 received by the controller 112. If thecontroller 112 determines, in operation 220, that commands such as theMIMO beamforming commands 124 have not been received by the controller112, the method 200 can return to operation 206, and the controller 112can obtain device data 118 associated with the user equipment 102.

It can be appreciated with reference to FIG. 2 that the functionalityassociated with the method 200 can be iterated by the controller 112 anynumber of times until the session between the user equipment 102 and thenetwork (e.g., the network associated with the controller 112) ends. Itshould be understood that this example is illustrative, and thereforeshould not be construed as being limiting in any way.

Turning now to FIG. 3 , aspects of a method 300 for establishing andrefining beams in MIMO sessions will be described in detail, accordingto another illustrative embodiment of the concepts and technologiesdisclosed herein. For purposes of illustrating and describing theconcepts of the present disclosure, the method 300 is described hereinas being performed by the server computer 122 via execution of one ormore software modules such as, for example, the MIMO beamforming service120. It should be understood that additional and/or alternative devicesand/or network nodes can provide the functionality described herein viaexecution of one or more modules, applications, and/or other softwareincluding, but not limited to, the MIMO beamforming service 120. Thus,the illustrated embodiments are illustrative, and should not be viewedas being limiting in any way.

The method 300 begins at operation 302. At operation 302, the servercomputer 122 can detect establishment of a session between a cell site110 and a user equipment 102. According to various embodiments of theconcepts and technologies disclosed herein, the server computer 122 candetect the establishment of the session in operation 302 based on areport from a cell site 110, based on receiving the device data 118,and/or based on other events or information. According to variousembodiments of the concepts and technologies disclosed herein, thesession established or detected in operation 302 can correspond to aMIMO session and/or a MU-MISO session. As mentioned above, the sessioncan be established at a first level, e.g., using a first number ofantenna array elements 116 (at least two antenna array elements arerequired in accordance with various embodiments of the concepts andtechnologies disclosed herein). According to various embodiments of theconcepts and technologies disclosed herein, the first level MIMO beamcan be provided by all or a number of the available antenna arrayelements 116 associated with a particular cell site 110. The number ofantenna array elements 116 used at the first level can be predeterminedand can range from two antenna array elements 116 to all antenna arrayelements 116. Thus, it can be appreciated that when a session isinitiated, the MIMO beam associated with the session can correspond to awide area or broadcast beam that may be directed in more than onedirection, etc. It should be understood that this example isillustrative, and therefore should not be construed as being limiting inany way.

From operation 302, the method 300 can proceed to operation 304. Atoperation 304, the server computer 122 can obtain device data 118relating to the user equipment 102 associated with the sessionestablished or detected in operation 302. As explained herein, thedevice data 118 can be obtained from the user equipment 102, from one ormore network monitors and/or other entities associated with the cellsite 110, and/or from other entities. The device data 118 can includecontextual data, movement data, connection data, and/or other data asillustrated and described herein with reference to FIG. 1A. It should beunderstood that this example is illustrative, and therefore should notbe construed as being limiting in any way.

From operation 304, the method 300 can proceed to operation 306. Atoperation 306, the server computer 122 can determine if the userequipment 102 associated with the session detected in operation 302 isstationary or non-stationary. According to various embodiments of theconcepts and technologies disclosed herein, the server computer 122 canmake the determination of operation 306 by analyzing the device data 118and determining, based on the device data 118, if the user equipment 102is moving or stationary. Of course, the server computer 122 can insteaddetermine, in operation 306, if the user equipment 102 is mobile ornon-mobile, etc. Thus, the illustrated embodiment is illustrative andshould not be construed as being limiting in any way.

If the server computer 122 determines, in operation 306, that the userequipment 102 associated with the session detected in operation 302 isstationary, the method 300 can proceed to operation 308. At operation308, the server computer 122 can generate and provide one or morebeamforming commands 124 to the cell site 110 and/or an entity thereof.The beamforming commands 124, when implemented by the cell site 110and/or the entity thereof, can cause the cell site 110 or entity thereof(e.g., the controller 112) to refine or effect refinement of the MIMObeam to a minimum number of antenna array elements 116 that can providethe requested service at a requested or required service levelcommitment. Thus, operation 308 can include the server computer 122determining how many antenna array elements 116 are required to providethe beam to the user equipment 102 and generating beamforming commands124 to cause the cell site 110 to deallocate or deactivate any antennaarray elements 116 that are not needed to provide the beam to the userequipment 102. It should be understood that this example isillustrative, and therefore should not be construed as being limiting inany way.

If the server computer 122 determines, in operation 306, that the userequipment 102 associated with the session detected in operation 302 isnon-stationary (or alternatively that the user equipment 102 is mobile),the method 300 can proceed to operation 310. At operation 310, theserver computer 122 can analyze the device data 118 and identify and/orpredict, based on the device data 118, one or more movements,trajectories, and/or activities of the user equipment 102. As explainedabove, the device data 118 can include contextual data that can describeactivities of the user equipment 102, movement data that can describelocations, trajectories, speeds, etc., of the user equipment 102,connection data that can describe power levels of the communicationhardware of the user equipment 102, and/or other data that can describeother aspects of the user equipment 102 and/or the session. Thus,operation 310 can include analyzing the device data 118 to determineresource needs associated with the session, movements of the userequipment 102, and/or other aspects of the communication sessiondetected in operation 302.

From operation 310, the method 300 can proceed to operation 312. Atoperation 312, the server computer 122 can determine a beam focus levelto use for the session detected in operation 302 based on the movements,trajectories, and activity determined in operation 310 and based on anoverall desire to minimize resource usage associated with the beam asexplained above. Thus, in operation 312 the server computer 122 candetermine how many antenna array elements 116 are required to supportthe beam associated with the session based on movements of the userequipment 102 and/or predicted movements of the user equipment 102,resource needs associated with the session, and one or more connectionparameters (e.g., power levels, etc.). Again, in some embodiments theserver computer 122 can be configured to use a narrowest beam possible(e.g., a beam generated by the smallest number of antenna array elements116 possible) while meeting a service commitment. It should beunderstood that this example is illustrative, and therefore should notbe construed as being limiting in any way.

From operation 312, the method 300 can proceed to operation 314. Atoperation 314, the server computer 122 can generate one or more commands(e.g., the beamforming commands 124) that, when implemented by a cellsite 110 and/or an entity thereof, can effect the refinement of the beamas determined in operation 312. Thus, operation 314 can include theserver computer 122 generating the beamforming commands 124 where thebeamforming commands 124, when implemented by the cell site 110 and/oran entity thereof, cause the cell site 110 to refine the non-stationaryMIMO beam from the first level (as established by the cell site 110 andas detected in operation 302) to the beam focus level determined inoperation 312.

In some other iterations of operation 314, the beamforming commands 124can cause the recipient to change a focus level of the MIMO beam byfurther narrowing the MIMO beam or by widening the MIMO beam; by movingthe MIMO beam from one antenna array element 116 to a different antennaarray element 116 (e.g., to track movements of a user equipment 102); ahandoff of the beam (from one antenna array element 116 at one cell site110 to a different antenna array element 116 at a second cell site 110);or other changes that can be made to the MIMO beam. Thus, it can beappreciated that the MIMO beam can be refined multiple times via thebeamforming commands 124 without having to reestablish the beam at abroadest or widest level. It should be understood that this example isillustrative, and therefore should not be construed as being limiting inany way.

From operation 314, the method 300 can proceed to operation 316. Inoperation 316, the server computer 122 can provide the one or morecommands (e.g., the beamforming commands 124) generated in operation 314to one or more cell sites (e.g., the cell site 110A with which the userequipment 102 is communicating and/or one or more neighboring cell sites110).

From operation 316, the method 300 can proceed to operation 318. Atoperation 318, the server computer 122 can determine if the MIMO beambeing used to support communications between a cell site 110 and theuser equipment 102 should be modified. Thus, it can be appreciated thatoperation 316 can include the server computer 122 determining, based onthe movements, trajectories, and activity of the user equipment 102, ifthe beam should be narrowed, widened, moved, handed off, etc.

If the server computer 122 determines, in operation 318, that the MIMObeam being used to support communications between a cell site 110 andthe user equipment 102 should be modified, the method 300 can return tooperation 314. At operation 314, the server computer 122 can againgenerate one or more commands such as, for example, the beamformingcommands 124. These beamforming commands 124, when received by the cellsite 110 or other entity, can cause the cell site 110 or other entity(e.g., the controller 112) to refine the MIMO beam. Thus, operations 314through 318 can be iterated until the server computer 122 determines, inany iteration of operation 318, that the MIMO beam should not bemodified.

If the server computer 122 determines, in operation 318, that the MIMObeam being used to support communications between a cell site 110 andthe user equipment 102 should not be modified, the method 300 can returnto operation 304. At operation 304, the server computer 122 can againobtain the device data 118 and the operations of the method 300 can bereiterated from operation 304.

It can be appreciated with reference to FIG. 3 that the functionalityassociated with the method 300 can be iterated by the server computer122 any number of times until the session between the user equipment 102and the network (e.g., the network associated with the cell sites 110)ends. It should be understood that this example is illustrative, andtherefore should not be construed as being limiting in any way.

Turning now to FIG. 4 , additional details of the network 104 areillustrated, according to an illustrative embodiment. The network 104includes a cellular network 402, a packet data network 404, for example,the Internet, and a circuit switched network 406, for example, apublicly switched telephone network (“PSTN”). The cellular network 402includes various components such as, but not limited to, basetransceiver stations (“BTSs”), Node-B's or e-Node-B's, base stationcontrollers (“BSCs”), radio network controllers (“RNCs”), mobileswitching centers (“MSCs”), mobile management entities (“MMEs”), shortmessage service centers (“SMSCs”), multimedia messaging service centers(“MMSCs”), home location registers (“HLRs”), home subscriber servers(“HSSs”), visitor location registers (“VLRs”), charging platforms,billing platforms, voicemail platforms, GPRS core network components,location service nodes, an IP Multimedia Subsystem (“IMS”), and thelike. The cellular network 402 also includes radios and nodes forreceiving and transmitting voice, data, and combinations thereof to andfrom radio transceivers, networks, the packet data network 404, and thecircuit switched network 406.

A mobile communications device 408, such as, for example, a cellulartelephone, a user equipment, a mobile terminal, a PDA, a laptopcomputer, a handheld computer, and combinations thereof, can beoperatively connected to the cellular network 402. The cellular network402 can be configured as a 2G GSM network and can provide datacommunications via GPRS and/or EDGE. Additionally, or alternatively, thecellular network 402 can be configured as a 3G UMTS network and canprovide data communications via the HSPA protocol family, for example,HSDPA, EUL (also referred to as HSDPA), and HSPA+. The cellular network402 also is compatible with 4G mobile communications standards, 5Gmobile communications standards, other mobile communications standards,and evolved and future mobile communications standards.

The packet data network 404 includes various devices, for example,servers, computers, databases, and other devices in communication withone another, as is generally known. The packet data network 404 devicesare accessible via one or more network links. The servers often storevarious files that are provided to a requesting device such as, forexample, a computer, a terminal, a smartphone, or the like. Typically,the requesting device includes software (a “browser”) for executing aweb page in a format readable by the browser or other software. Otherfiles and/or data may be accessible via “links” in the retrieved files,as is generally known. In some embodiments, the packet data network 404includes or is in communication with the Internet. The circuit switchednetwork 406 includes various hardware and software for providing circuitswitched communications. The circuit switched network 406 may include,or may be, what is often referred to as a plain old telephone system(POTS). The functionality of a circuit switched network 406 or othercircuit-switched network are generally known and will not be describedherein in detail.

The illustrated cellular network 402 is shown in communication with thepacket data network 404 and a circuit switched network 406, though itshould be appreciated that this is not necessarily the case. One or moreInternet-capable devices 410, for example, a PC, a laptop, a portabledevice, or another suitable device, can communicate with one or morecellular networks 402, and devices connected thereto, through the packetdata network 404. It also should be appreciated that theInternet-capable device 410 can communicate with the packet data network404 through the circuit switched network 406, the cellular network 402,and/or via other networks (not illustrated).

As illustrated, a communications device 412, for example, a telephone,facsimile machine, modem, computer, or the like, can be in communicationwith the circuit switched network 406, and therethrough to the packetdata network 404 and/or the cellular network 402. It should beappreciated that the communications device 412 can be anInternet-capable device, and can be substantially similar to theInternet-capable device 410. In the specification, the network 104 isused to refer broadly to any combination of the networks 402, 404, 406.It should be appreciated that substantially all of the functionalitydescribed with reference to the network 104 can be performed by thecellular network 402, the packet data network 404, and/or the circuitswitched network 406, alone or in combination with other networks,network elements, and the like.

FIG. 5 is a block diagram illustrating a computer system 500 configuredto provide the functionality described herein for establishing andrefining beams in MIMO sessions, in accordance with various embodimentsof the concepts and technologies disclosed herein. The computer system500 includes a processing unit 502, a memory 504, one or more userinterface devices 506, one or more input/output (“I/O”) devices 508, andone or more network devices 510, each of which is operatively connectedto a system bus 512. The bus 512 enables bi-directional communicationbetween the processing unit 502, the memory 504, the user interfacedevices 506, the I/O devices 508, and the network devices 510.

The processing unit 502 may be a standard central processor thatperforms arithmetic and logical operations, a more specific purposeprogrammable logic controller (“PLC”), a programmable gate array, orother type of processor known to those skilled in the art and suitablefor controlling the operation of the server computer. As used herein,the word “processor” and/or the phrase “processing unit” when used withregard to any architecture or system can include multiple processors orprocessing units distributed across and/or operating in parallel in asingle machine or in multiple machines. Furthermore, processors and/orprocessing units can be used to support virtual processing environments.Processors and processing units also can include state machines,application-specific integrated circuits (“ASICs”), combinationsthereof, or the like. Because processors and/or processing units aregenerally known, the processors and processing units disclosed hereinwill not be described in further detail herein.

The memory 504 communicates with the processing unit 502 via the systembus 512. In some embodiments, the memory 504 is operatively connected toa memory controller (not shown) that enables communication with theprocessing unit 502 via the system bus 512. The memory 504 includes anoperating system 514 and one or more program modules 516. The operatingsystem 514 can include, but is not limited to, members of the WINDOWS,WINDOWS CE, and/or WINDOWS MOBILE families of operating systems fromMICROSOFT CORPORATION, the LINUX family of operating systems, theSYMBIAN family of operating systems from SYMBIAN LIMITED, the BREWfamily of operating systems from QUALCOMM CORPORATION, the MAC OS, iOS,and/or LEOPARD families of operating systems from APPLE CORPORATION, theFREEBSD family of operating systems, the SOLARIS family of operatingsystems from ORACLE CORPORATION, other operating systems, and the like.

The program modules 516 may include various software and/or programmodules described herein. In some embodiments, for example, the programmodules 516 include the communication application 108, the controller112, and the MIMO beamforming service 120. These and/or other programscan be embodied in computer-readable media containing instructions that,when executed by the processing unit 502, perform one or more of themethods 200 and 300 described in detail above with respect to FIGS. 2and 3 and/or other functionality as illustrated and described herein. Itcan be appreciated that, at least by virtue of the instructionsembodying the methods 200 and 300, and/or other functionalityillustrated and described herein being stored in the memory 504 and/oraccessed and/or executed by the processing unit 502, the computer system500 is a special-purpose computing system that can facilitate providingthe functionality illustrated and described herein. According toembodiments, the program modules 516 may be embodied in hardware,software, firmware, or any combination thereof. Although not shown inFIG. 5 , it should be understood that the memory 504 also can beconfigured to store the device data 118, the beamforming commands 124,and/or other data, if desired.

By way of example, and not limitation, computer-readable media mayinclude any available computer storage media or communication media thatcan be accessed by the computer system 500. Communication media includescomputer-readable instructions, data structures, program modules, orother data in a modulated data signal such as a carrier wave or othertransport mechanism and includes any delivery media. The term “modulateddata signal” means a signal that has one or more of its characteristicschanged or set in a manner as to encode information in the signal. Byway of example, and not limitation, communication media includes wiredmedia such as a wired network or direct-wired connection, and wirelessmedia such as acoustic, RF, infrared and other wireless media.Combinations of any of the above should also be included within thescope of computer-readable media.

Computer storage media includes only non-transitory embodiments ofcomputer readable media as illustrated and described herein. Thus,computer storage media can include volatile and non-volatile, removableand non-removable media implemented in any method or technology forstorage of information such as computer-readable instructions, datastructures, program modules, or other data. Computer storage mediaincludes, but is not limited to, RAM, ROM, Erasable Programmable ROM(“EPROM”), Electrically Erasable Programmable ROM (“EEPROM”), flashmemory or other solid state memory technology, CD-ROM, digital versatiledisks (“DVD”), or other optical storage, magnetic cassettes, magnetictape, magnetic disk storage or other magnetic storage devices, or anyother medium which can be used to store the desired information andwhich can be accessed by the computer system 500. In the claims, thephrase “computer storage medium” and variations thereof does not includewaves or signals per se and/or communication media.

The user interface devices 506 may include one or more devices withwhich a user accesses the computer system 500. The user interfacedevices 506 may include, but are not limited to, computers, servers,personal digital assistants, cellular phones, or any suitable computingdevices. The I/O devices 508 enable a user to interface with the programmodules 516. In one embodiment, the I/O devices 508 are operativelyconnected to an I/O controller (not shown) that enables communicationwith the processing unit 502 via the system bus 512. The I/O devices 508may include one or more input devices, such as, but not limited to, akeyboard, a mouse, or an electronic stylus. Further, the I/O devices 508may include one or more output devices, such as, but not limited to, adisplay screen or a printer.

The network devices 510 enable the computer system 500 to communicatewith other networks or remote systems via a network, such as the network104. Examples of the network devices 510 include, but are not limitedto, a modem, a radio frequency (“RF”) or infrared (“IR”) transceiver, atelephonic interface, a bridge, a router, or a network card. The network104 may include a wireless network such as, but not limited to, aWireless Local Area Network (“WLAN”) such as a WI-FI network, a WirelessWide Area Network (“WWAN”), a Wireless Personal Area Network (“WPAN”)such as BLUETOOTH, a Wireless Metropolitan Area Network (“WMAN”) such aWiMAX network, or a cellular network. Alternatively, the network 104 maybe a wired network such as, but not limited to, a Wide Area Network(“WAN”) such as the Internet, a Local Area Network (“LAN”) such as theEthernet, a wired Personal Area Network (“PAN”), or a wired MetropolitanArea Network (“MAN”).

Turning now to FIG. 6 , an illustrative mobile device 600 and componentsthereof will be described. In some embodiments, the user equipment 102described above with reference to FIGS. 1A-4 can be configured as and/orcan have an architecture similar or identical to the mobile device 600described herein in FIG. 6 . It should be understood, however, that theuser equipment 102 may or may not include the functionality describedherein with reference to FIG. 6 . While connections are not shownbetween the various components illustrated in FIG. 6 , it should beunderstood that some, none, or all of the components illustrated in FIG.6 can be configured to interact with one another to carry out variousdevice functions. In some embodiments, the components are arranged so asto communicate via one or more busses (not shown). Thus, it should beunderstood that FIG. 6 and the following description are intended toprovide a general understanding of a suitable environment in whichvarious aspects of embodiments can be implemented, and should not beconstrued as being limiting in any way.

As illustrated in FIG. 6 , the mobile device 600 can include a display602 for displaying data. According to various embodiments, the display602 can be configured to display various graphical user interface(“GUI”) elements such as, for example, text, images, video, virtualkeypads and/or keyboards, messaging data, notification messages,metadata, internet content, device status, time, date, calendar data,device preferences, map and location data, combinations thereof, and/orthe like. The mobile device 600 also can include a processor 604 and amemory or other data storage device (“memory”) 606. The processor 604can be configured to process data and/or can execute computer-executableinstructions stored in the memory 606. The computer-executableinstructions executed by the processor 604 can include, for example, anoperating system 608, one or more applications 610 such as thecommunication application 108, other computer-executable instructionsstored in a memory 606, or the like. In some embodiments, theapplications 610 also can include a UI application (not illustrated inFIG. 6 ).

The UI application can interface with the operating system 608, (such asthe operating system 106 shown in FIG. 1A), to facilitate userinteraction with functionality and/or data stored at the mobile device600 and/or stored elsewhere. In some embodiments, the operating system608 can include a member of the SYMBIAN OS family of operating systemsfrom SYMBIAN LIMITED, a member of the WINDOWS MOBILE OS and/or WINDOWSPHONE OS families of operating systems from MICROSOFT CORPORATION, amember of the PALM WEBOS family of operating systems from HEWLETTPACKARD CORPORATION, a member of the BLACKBERRY OS family of operatingsystems from RESEARCH IN MOTION LIMITED, a member of the IOS family ofoperating systems from APPLE INC., a member of the ANDROID OS family ofoperating systems from GOOGLE INC., and/or other operating systems.These operating systems are merely illustrative of some contemplatedoperating systems that may be used in accordance with variousembodiments of the concepts and technologies described herein andtherefore should not be construed as being limiting in any way.

The UI application can be executed by the processor 604 to aid a user inentering content, configuring settings, manipulating address bookcontent and/or settings, multimode interaction, interacting with otherapplications 610, and otherwise facilitating user interaction with theoperating system 608, the applications 610, and/or other types orinstances of data 612 that can be stored at the mobile device 600. Thedata 612 can include, for example, device data 118, beamforming commands124, and/or other applications or program modules. According to variousembodiments, the data 612 can include, for example, presenceapplications, visual voice mail applications, messaging applications,text-to-speech and speech-to-text applications, add-ons, plug-ins, emailapplications, music applications, video applications, cameraapplications, location-based service applications, power conservationapplications, game applications, productivity applications,entertainment applications, enterprise applications, combinationsthereof, and the like. The applications 610, the data 612, and/orportions thereof can be stored in the memory 606 and/or in a firmware614, and can be executed by the processor 604.

It can be appreciated that, at least by virtue of storage of theinstructions corresponding to the applications 610 and/or otherinstructions embodying other functionality illustrated and describedherein in the memory 606, and/or by virtue of the instructionscorresponding to the applications 610 and/or other instructionsembodying other functionality illustrated and described herein beingaccessed and/or executed by the processor 604, the mobile device 600 isa special-purpose mobile device that can facilitate providing thefunctionality illustrated and described herein. The firmware 614 alsocan store code for execution during device power up and power downoperations. It can be appreciated that the firmware 614 can be stored ina volatile or non-volatile data storage device including, but notlimited to, the memory 606 and/or a portion thereof.

The mobile device 600 also can include an input/output (“I/O”) interface616. The I/O interface 616 can be configured to support the input/outputof data such as location information, contextual data, connection data,user information, organization information, presence status information,user IDs, passwords, and application initiation (start-up) requests. Insome embodiments, the I/O interface 616 can include a hardwireconnection such as a universal serial bus (“USB”) port, a mini-USB port,a micro-USB port, an audio jack, a PS2 port, an IEEE 1394 (“FIREWIRE”)port, a serial port, a parallel port, an Ethernet (RJ45 or RJ48) port, atelephone (RJ11 or the like) port, a proprietary port, combinationsthereof, or the like. In some embodiments, the mobile device 600 can beconfigured to synchronize with another device to transfer content toand/or from the mobile device 600. In some embodiments, the mobiledevice 600 can be configured to receive updates to one or more of theapplications 610 via the I/O interface 616, though this is notnecessarily the case. In some embodiments, the I/O interface 616 acceptsI/O devices such as keyboards, keypads, mice, interface tethers,printers, plotters, external storage, touch/multi-touch screens, touchpads, trackballs, joysticks, microphones, remote control devices,displays, projectors, medical equipment (e.g., stethoscopes, heartmonitors, and other health metric monitors), modems, routers, externalpower sources, docking stations, combinations thereof, and the like. Itshould be appreciated that the I/O interface 616 may be used forcommunications between the mobile device 600 and a network device orlocal device.

The mobile device 600 also can include a communications component 618.The communications component 618 can be configured to interface with theprocessor 604 to facilitate wired and/or wireless communications withone or more networks such as the network 104 described herein. In someembodiments, other networks include networks that utilize non-cellularwireless technologies such as WI-FI or WIMAX. In some embodiments, thecommunications component 618 includes a multimode communicationssubsystem for facilitating communications via the cellular network andone or more other networks.

The communications component 618, in some embodiments, includes one ormore transceivers. The one or more transceivers, if included, can beconfigured to communicate over the same and/or different wirelesstechnology standards with respect to one another. For example, in someembodiments one or more of the transceivers of the communicationscomponent 618 may be configured to communicate using GSM, CDMAONE,CDMA2000, LTE, and various other 2G, 2.5G, 3G, 4G, 5G, and greatergeneration technology standards. Moreover, the communications component618 may facilitate communications over various channel access methods(which may or may not be used by the aforementioned standards)including, but not limited to, TDMA, FDMA, W-CDMA, OFDM, SDMA, and thelike.

In addition, the communications component 618 may facilitate datacommunications using GPRS, EDGE, the HSPA protocol family includingHSDPA, EUL or otherwise termed HSUPA, HSPA+, and various other currentand future wireless data access standards. In the illustratedembodiment, the communications component 618 can include a firsttransceiver (“TxRx”) 620A that can operate in a first communicationsmode (e.g., GSM). The communications component 618 also can include anN^(th) transceiver (“TxRx”) 620N that can operate in a secondcommunications mode relative to the first transceiver 620A (e.g., UMTS).While two transceivers 620A-N (hereinafter collectively and/orgenerically referred to as “transceivers 620”) are shown in FIG. 6 , itshould be appreciated that less than two, two, and/or more than twotransceivers 620 can be included in the communications component 618.

The communications component 618 also can include an alternativetransceiver (“Alt TxRx”) 622 for supporting other types and/or standardsof communications. According to various contemplated embodiments, thealternative transceiver 622 can communicate using various communicationstechnologies such as, for example, WI-FI, WIMAX, BLUETOOTH, infrared,infrared data association (“IRDA”), near field communications (“NFC”),other RF technologies, combinations thereof, and the like. In someembodiments, the communications component 618 also can facilitatereception from terrestrial radio networks, digital satellite radionetworks, internet-based radio service networks, combinations thereof,and the like. The communications component 618 can process data from anetwork such as the Internet, an intranet, a broadband network, a WI-FIhotspot, an Internet service provider (“ISP”), a digital subscriber line(“DSL”) provider, a broadband provider, combinations thereof, or thelike.

The mobile device 600 also can include one or more sensors 624. Thesensors 624 can include temperature sensors, light sensors, air qualitysensors, movement sensors, orientation sensors, noise sensors, proximitysensors, or the like. As such, it should be understood that the sensors624 can include, but are not limited to, accelerometers, magnetometers,gyroscopes, infrared sensors, noise sensors, microphones, combinationsthereof, or the like. Additionally, audio capabilities for the mobiledevice 600 may be provided by an audio I/O component 626. The audio I/Ocomponent 626 of the mobile device 600 can include one or more speakersfor the output of audio signals, one or more microphones for thecollection and/or input of audio signals, and/or other audio inputand/or output devices.

The illustrated mobile device 600 also can include a subscriber identitymodule (“SIM”) system 628. The SIM system 628 can include a universalSIM (“USIM”), a universal integrated circuit card (“UICC”) and/or otheridentity devices. The SIM system 628 can include and/or can be connectedto or inserted into an interface such as a slot interface 630. In someembodiments, the slot interface 630 can be configured to acceptinsertion of other identity cards or modules for accessing various typesof networks. Additionally, or alternatively, the slot interface 630 canbe configured to accept multiple subscriber identity cards. Becauseother devices and/or modules for identifying users and/or the mobiledevice 600 are contemplated, it should be understood that theseembodiments are illustrative, and should not be construed as beinglimiting in any way.

The mobile device 600 also can include an image capture and processingsystem 632 (“image system”). The image system 632 can be configured tocapture or otherwise obtain photos, videos, and/or other visualinformation. As such, the image system 632 can include cameras, lenses,charge-coupled devices (“CCDs”), combinations thereof, or the like. Themobile device 600 may also include a video system 634. The video system634 can be configured to capture, process, record, modify, and/or storevideo content. Photos and videos obtained using the image system 632 andthe video system 634, respectively, may be added as message content toan MMS message, email message, and sent to another mobile device. Thevideo and/or photo content also can be shared with other devices viavarious types of data transfers via wired and/or wireless communicationdevices as described herein.

The mobile device 600 also can include one or more location components636. The location components 636 can be configured to send and/orreceive signals to determine a geographic location of the mobile device600. According to various embodiments, the location components 636 cansend and/or receive signals from global positioning system (“GPS”)devices, assisted-GPS (“A-GPS”) devices, WI-FI/WIMAX and/or cellularnetwork triangulation data, combinations thereof, and the like. Thelocation component 636 also can be configured to communicate with thecommunications component 618 to retrieve triangulation data fordetermining a location of the mobile device 600. In some embodiments,the location component 636 can interface with cellular network nodes,telephone lines, satellites, location transmitters and/or beacons,wireless network transmitters and receivers, combinations thereof, andthe like. In some embodiments, the location component 636 can includeand/or can communicate with one or more of the sensors 624 such as acompass, an accelerometer, and/or a gyroscope to determine theorientation of the mobile device 600. Using the location component 636,the mobile device 600 can generate and/or receive data to identify itsgeographic location, or to transmit data used by other devices todetermine the location of the mobile device 600. The location component636 may include multiple components for determining the location and/ororientation of the mobile device 600.

The illustrated mobile device 600 also can include a power source 638.The power source 638 can include one or more batteries, power supplies,power cells, and/or other power subsystems including alternating current(“AC”) and/or direct current (“DC”) power devices. The power source 638also can interface with an external power system or charging equipmentvia a power I/O component 640. Because the mobile device 600 can includeadditional and/or alternative components, the above embodiment should beunderstood as being illustrative of one possible operating environmentfor various embodiments of the concepts and technologies describedherein. The described embodiment of the mobile device 600 isillustrative, and should not be construed as being limiting in any way.

FIG. 7 illustrates an illustrative architecture for a cloud computingplatform 700 that can be capable of executing the software componentsdescribed herein for establishing and refining beams in MIMO sessionsand/or for interacting with the MIMO beamforming service 120. Thus, itcan be appreciated that in some embodiments of the concepts andtechnologies disclosed herein, the cloud computing platform 700illustrated in FIG. 7 can be used to provide the functionality describedherein with respect to the controller 112, the server computer 122, theuser equipment 102, and/or other devices illustrated and describedherein.

The cloud computing platform 700 thus may be utilized to execute anyaspects of the software components presented herein. Thus, according tovarious embodiments of the concepts and technologies disclosed herein,the communication application 108, the controller 112, and/or the MIMObeamforming service 120 can be implemented, at least in part, on or byelements included in the cloud computing platform 700 illustrated anddescribed herein. Those skilled in the art will appreciate that theillustrated cloud computing platform 700 is a simplification of but onlyone possible implementation of an illustrative cloud computing platform,and as such, the illustrated cloud computing platform 700 should not beconstrued as being limiting in any way.

In the illustrated embodiment, the cloud computing platform 700 caninclude a hardware resource layer 702, a virtualization/control layer704, and a virtual resource layer 706. These layers and/or other layerscan be configured to cooperate with each other and/or other elements ofa cloud computing platform 700 to perform operations as will bedescribed in detail herein. While connections are shown between some ofthe components illustrated in FIG. 7 , it should be understood thatsome, none, or all of the components illustrated in FIG. 7 can beconfigured to interact with one another to carry out various functionsdescribed herein. In some embodiments, the components are arranged so asto communicate via one or more networks such as, for example, thenetwork 104 illustrated and described hereinabove (not shown in FIG. 7). Thus, it should be understood that FIG. 7 and the followingdescription are intended to provide a general understanding of asuitable environment in which various aspects of embodiments can beimplemented, and should not be construed as being limiting in any way.

The hardware resource layer 702 can provide hardware resources. In theillustrated embodiment, the hardware resources can include one or morecompute resources 708, one or more memory resources 710, and one or moreother resources 712. The compute resource(s) 708 can include one or morehardware components that can perform computations to process data,and/or to execute computer-executable instructions of one or moreapplication programs, operating systems, services, and/or other softwareincluding, but not limited to, the communication application 108, thecontroller 112, and/or the MIMO beamforming service 120 illustrated anddescribed herein.

According to various embodiments, the compute resources 708 can includeone or more central processing units (“CPUs”). The CPUs can beconfigured with one or more processing cores. In some embodiments, thecompute resources 708 can include one or more graphics processing units(“GPUs”). The GPUs can be configured to accelerate operations performedby one or more CPUs, and/or to perform computations to process data,and/or to execute computer-executable instructions of one or moreapplication programs, operating systems, and/or other software that mayor may not include instructions that are specifically graphicscomputations and/or related to graphics computations. In someembodiments, the compute resources 708 can include one or more discreteGPUs. In some other embodiments, the compute resources 708 can includeone or more CPU and/or GPU components that can be configured inaccordance with a co-processing CPU/GPU computing model. Thus, it can beappreciated that in some embodiments of the compute resources 708, asequential part of an application can execute on a CPU and acomputationally-intensive part of the application can be accelerated bythe GPU. It should be understood that this example is illustrative, andtherefore should not be construed as being limiting in any way.

In some embodiments, the compute resources 708 also can include one ormore system on a chip (“SoC”) components. It should be understood thatthe an SoC component can operate in association with one or more othercomponents as illustrated and described herein, for example, one or moreof the memory resources 710 and/or one or more of the other resources712. In some embodiments in which an SoC component is included, thecompute resources 708 can be or can include one or more embodiments ofthe SNAPDRAGON brand family of SoCs, available from QUALCOMM of SanDiego, Calif.; one or more embodiment of the TEGRA brand family of SoCs,available from NVIDIA of Santa Clara, Calif.; one or more embodiment ofthe HUMMINGBIRD brand family of SoCs, available from SAMSUNG of Seoul,South Korea; one or more embodiment of the Open Multimedia ApplicationPlatform (“OMAP”) family of SoCs, available from TEXAS INSTRUMENTS ofDallas, Tex.; one or more customized versions of any of the above SoCs;and/or one or more other brand and/or one or more proprietary SoCs.

The compute resources 708 can be or can include one or more hardwarecomponents arranged in accordance with an ARM architecture, availablefor license from ARM HOLDINGS of Cambridge, United Kingdom.Alternatively, the compute resources 708 can be or can include one ormore hardware components arranged in accordance with an x86architecture, such as an architecture available from INTEL CORPORATIONof Mountain View, Calif., and others. Those skilled in the art willappreciate the implementation of the compute resources 708 can utilizevarious computation architectures and/or processing architectures. Assuch, the various example embodiments of the compute resources 708 asmentioned hereinabove should not be construed as being limiting in anyway. Rather, implementations of embodiments of the concepts andtechnologies disclosed herein can be implemented using compute resources708 having any of the particular computation architecture and/orcombination of computation architectures mentioned herein as well asother architectures.

Although not separately illustrated in FIG. 7 , it should be understoodthat the compute resources 708 illustrated and described herein can hostand/or execute various services, applications, portals, and/or otherfunctionality illustrated and described herein. Thus, the computeresources 708 can host and/or can execute the communication application108, the controller 112, and/or the MIMO beamforming service 120illustrated and described herein.

The memory resource(s) 710 can include one or more hardware componentsthat can perform or provide storage operations, including temporaryand/or permanent storage operations. In some embodiments, the memoryresource(s) 710 can include volatile and/or non-volatile memoryimplemented in any method or technology for storage of information suchas computer-readable instructions, data structures, program modules, orother data disclosed herein. Computer storage media is definedhereinabove and therefore should be understood as including, in variousembodiments, random access memory (“RAM”), read-only memory (“ROM”),Erasable Programmable ROM (“EPROM”), Electrically Erasable ProgrammableROM (“EEPROM”), flash memory or other solid state memory technology,CD-ROM, digital versatile disks (“DVD”), or other optical storage,magnetic cassettes, magnetic tape, magnetic disk storage or othermagnetic storage devices, or any other medium that can be used to storedata and that can be accessed by the compute resources 708, subject tothe definition of “computer storage media” provided above (e.g., asexcluding waves and signals per se and/or communication media as definedin this application).

Although not illustrated in FIG. 7 , it should be understood that thememory resources 710 can host or store the various data illustrated anddescribed herein including, but not limited to, the device data 118, thebeamforming commands 124, and/or other data, if desired. It should beunderstood that this example is illustrative, and therefore should notbe construed as being limiting in any way.

The other resource(s) 712 can include any other hardware resources thatcan be utilized by the compute resources(s) 708 and/or the memoryresource(s) 710 to perform operations. The other resource(s) 712 caninclude one or more input and/or output processors (e.g., a networkinterface controller and/or a wireless radio), one or more modems, oneor more codec chipsets, one or more pipeline processors, one or morefast Fourier transform (“FFT”) processors, one or more digital signalprocessors (“DSPs”), one or more speech synthesizers, combinationsthereof, or the like.

The hardware resources operating within the hardware resource layer 702can be virtualized by one or more virtual machine monitors (“VMMs”)714A-714N (also known as “hypervisors;” hereinafter “VMMs 714”). TheVMMs 714 can operate within the virtualization/control layer 704 tomanage one or more virtual resources that can reside in the virtualresource layer 706. The VMMs 714 can be or can include software,firmware, and/or hardware that alone or in combination with othersoftware, firmware, and/or hardware, can manage one or more virtualresources operating within the virtual resource layer 706.

The virtual resources operating within the virtual resource layer 706can include abstractions of at least a portion of the compute resources708, the memory resources 710, the other resources 712, or anycombination thereof. These abstractions are referred to herein asvirtual machines (“VMs”). In the illustrated embodiment, the virtualresource layer 706 includes VMs 716A-716N (hereinafter “VMs 716”).

Based on the foregoing, it should be appreciated that systems andmethods for establishing and refining beams in MIMO sessions have beendisclosed herein. Although the subject matter presented herein has beendescribed in language specific to computer structural features,methodological and transformative acts, specific computing machinery,and computer-readable media, it is to be understood that the conceptsand technologies disclosed herein are not necessarily limited to thespecific features, acts, or media described herein. Rather, the specificfeatures, acts and mediums are disclosed as example forms ofimplementing the concepts and technologies disclosed herein.

The subject matter described above is provided by way of illustrationonly and should not be construed as limiting. Various modifications andchanges may be made to the subject matter described herein withoutfollowing the example embodiments and applications illustrated anddescribed, and without departing from the true spirit and scope of theembodiments of the concepts and technologies disclosed herein.

1. A system comprising: a processor; and a memory that stores computer-executable instructions that, when executed by the processor, cause the processor to perform operations comprising establishing a communication session between a cell site and a user equipment, wherein the communication session is conducted using a multi-input multi-output beam that is supported by a first portion of an antenna array associated with the cell site, the first portion comprising a plurality of antenna array elements of the antenna array, obtaining device data that relates to the user equipment, wherein the device data describes a movement of the user equipment, determining, based on the device data, a refinement to be applied to the multi-input multi-output beam, wherein a refined multi-input multi-output beam is supported by a second portion of the antenna array, and refining the multi-input multi-output beam at the cell site.
 2. The system of claim 1, wherein the device data describes a direction of travel of the user equipment and a speed of travel of the user equipment.
 3. The system of claim 1, wherein the computer-executable instructions, when executed by the processor, cause the processor to perform operations further comprising: determining, based on the device data, that the user equipment is stationary; and in response to a determination that the user equipment is stationary, deactivating a first antenna element that is included in the first portion of the antenna array and that is not included in the second portion of the antenna array.
 4. The system of claim 1, wherein the computer-executable instructions, when executed by the processor, cause the processor to perform operations further comprising: determining, based on the device data, that the user equipment is stationary; and in response to a determination that the user equipment is not stationary, identifying or predicting movements of the user equipment, determining a beam focus level, and deactivating a first antenna element that is included in the first portion of the antenna array and that is not included in the second portion of the antenna array.
 5. The system of claim 1, wherein the computer-executable instructions, when executed by the processor, cause the processor to perform operations further comprising: determining, based on the device data, that the multi-input multi-output beam should be modified; and in response to a determination that the multi-input multi-output beam should be modified, deactivating a first antenna element that is included in the first portion of the antenna array and that is not included in the second portion of the antenna array.
 6. The system of claim 1, wherein the first portion of the antenna array comprises a first antenna array element of the antenna array, and wherein the second portion of the antenna array comprises a second antenna array element of the antenna array.
 7. The system of claim 1, wherein the first portion of the antenna array comprises a first antenna array element and does not include a second antenna array element, and wherein the second portion of the antenna array comprises the second antenna array element and does not include the first antenna array element.
 8. The system of claim 1, wherein the first portion of the antenna array comprises a first antenna array element of a first antenna array comprising the antenna array, and wherein the second portion of the antenna array comprises a second antenna array element of a second antenna array that does not include the antenna array.
 9. The system of claim 1, wherein the computer-executable instructions, when executed by the processor, cause the processor to perform operations further comprising: determining, based on the device data, that the multi-input multi-output beam should be modified; and in response to a determination that the multi-input multi-output beam should be modified, changing an aim of a first antenna element that is included in the first portion of the antenna array.
 10. The system of claim 1, wherein the computer-executable instructions, when executed by the processor, cause the processor to perform operations further comprising: determining, based on the device data, that the multi-input multi-output beam should be modified; and in response to a determination that the multi-input multi-output beam should be modified, changing a power level of a first antenna element that is included in the first portion of the antenna array.
 11. A method comprising: establishing, by a cell site comprising a processor, a communication session between the cell site and a user equipment, wherein the communication session is conducted using a multi-input multi-output beam that is supported by a first portion of an antenna array associated with the cell site, the first portion comprising a plurality of antenna array elements of the antenna array, obtaining, by the processor, device data that relates to the user equipment, wherein the device data describes a movement of the user equipment, determining, by the processor, a refinement to be applied to the multi-input multi-output beam, wherein a refined multi-input multi-output beam is supported by a second portion of the antenna array, and refining, by the processor, the multi-input multi-output beam at the cell site.
 12. The method of claim 11, wherein the device data describes a direction of travel of the user equipment and a speed of travel of the user equipment.
 13. The method of claim 11, further comprising: determining, based on the device data, that the user equipment is stationary; and in response to a determination that the user equipment is stationary, deactivating a first antenna element that is included in the first portion of the antenna array and that is not included in the second portion of the antenna array.
 14. The method of claim 11, further comprising: determining, based on the device data, that the user equipment is stationary; and in response to a determination that the user equipment is not stationary, identifying or predicting movements of the user equipment, determining a beam focus level, and deactivating a first antenna element that is included in the first portion of the antenna array and that is not included in the second portion of the antenna array.
 15. The method of claim 11, further comprising: determining, based on the device data, that the multi-input multi-output beam should be modified; and in response to determining that the multi-input multi-output beam should be modified, deactivating a first antenna element that is included in the first portion of the antenna array and that is not included in the second portion of the antenna array.
 16. A computer storage medium having computer-executable instructions stored thereon that, when executed by a processor, cause the processor to perform operations comprising: establishing a communication session between a cell site and a user equipment, wherein the communication session is conducted using a multi-input multi-output beam that is supported by a first portion of an antenna array associated with the cell site, the first portion comprising a plurality of antenna array elements of the antenna array; obtaining device data that relates to the user equipment, wherein the device data describes a movement of the user equipment; determining, based on the device data, a refinement to be applied to the multi-input multi-output beam, wherein a refined multi-input multi-output beam is supported by a second portion of the antenna array; and refining the multi-input multi-output beam at the cell site.
 17. The computer storage medium of claim 16, wherein the device data describes a direction of travel of the user equipment and a speed of travel of the user equipment.
 18. The computer storage medium of claim 16, wherein the computer-executable instructions, when executed by the processor, cause the processor to perform operations further comprising: determining, based on the device data, that the user equipment is stationary; and in response to a determination that the user equipment is stationary, deactivating a first antenna element that is included in the first portion of the antenna array and that is not included in the second portion of the antenna array.
 19. The computer storage medium of claim 16, wherein the computer-executable instructions, when executed by the processor, cause the processor to perform operations further comprising: determining, based on the device data, that the user equipment is stationary; and in response to a determination that the user equipment is not stationary, identifying or predicting movements of the user equipment, determining a beam focus level, and deactivating a first antenna element that is included in the first portion of the antenna array and that is not included in the second portion of the antenna array.
 20. The computer storage medium of claim 16, wherein the computer-executable instructions, when executed by the processor, cause the processor to perform operations further comprising: determining, based on the device data, that the multi-input multi-output beam should be modified; and in response to a determination that the multi-input multi-output beam should be modified, deactivating a first antenna element that is included in the first portion of the antenna array and that is not included in the second portion of the antenna array. 